package fr.greta.centreFormation.controller;

import java.io.IOException;
import java.sql.SQLException;
import java.util.Date;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;


import fr.greta.centreFormation.bean.Administrateur;
import fr.greta.centreFormation.bean.Candidat;
import fr.greta.centreFormation.bean.Log;

import fr.greta.centreFormation.dao.AdministrateurHome;
import fr.greta.centreFormation.dao.CandidatHome;
import fr.greta.centreFormation.dao.LogHome;

/**
 * Servlet implementation class VerifLogin
 */
public class VerifLogin extends HttpServlet {
	private static final long serialVersionUID = 1L;

	/**
	 * @see HttpServlet#HttpServlet()
	 */
	public VerifLogin() {
		super();
		// TODO Auto-generated constructor stub
	}

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doPost(request, response);	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
		String login=request.getParameter("login");
		String password=request.getParameter("password");

		HttpSession session=request.getSession(true);

		String message=null;
		session.setAttribute("message", message);

		//le login et le password contiennent des valeurs
		if(login!="" && password!=""){

			Administrateur unAdmin= new Administrateur();
			unAdmin=AdministrateurHome.selectUnAdminByLoginPassword(login, password);

			if(unAdmin!=null){

				session.setAttribute("lAdministrateur", unAdmin);
				
				// insertion de l'admin dans la table log :
				
				// Récupation de la date et du jour :
				Date laDate = new Date();
				
				// Création du log :
				Log leLog = new Log();
				leLog.setDate(laDate);
				leLog.setPersonne(unAdmin);
				
				try {
					LogHome.insertLog(leLog);
				} catch (SQLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
				
				
				request.getRequestDispatcher("CheckCandidat").forward(request, response);

			}else {

				Candidat unCandidat=new Candidat();
				unCandidat=CandidatHome.selectUnCandidatByLoginPassword(login, password);

				if (unCandidat!=null){
					session.setAttribute("leCandidat", unCandidat);
					
					// insertion du candidat dans la table log :
					
					// Récupation de la date et du jour :
					Date laDate = new Date();
					
					// Création du log :
					Log leLog = new Log();
					leLog.setDate(laDate);
					leLog.setPersonne(unCandidat);
					
					try {
						LogHome.insertLog(leLog);
					} catch (SQLException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					}
					
					
					request.getRequestDispatcher("RechercheFicheCandidat").forward(request, response);

				}else{	
					message="le login ou password est faux";
					session.setAttribute("message", message);
					request.getRequestDispatcher("seConnecter.jsp").forward(request, response);
				}
			}

		}
		else	{
			if(login=="" && password==""){
				message= "veuillez saisir votre login et votre mot de passe";
			}else{
				if(login==""){
					message="veuillez saisir votre login";
				}else{
					message="veuillez saisir votre mot de passe";
				}
			}
			session.setAttribute("message", message);
			request.getRequestDispatcher("seConnecter.jsp").forward(request, response);
		}
	}


}
